package com.fiap.to;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.PrePersist;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "AM_ENDERECO")
public class EnderecoTO implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GenericGenerator(name = "seq_endereco", strategy = "increment")
	@GeneratedValue(generator = "seq_endereco")
	@Column(name = "ID_ENDERECO", columnDefinition = "NUMBER")
	private int id_endereco;
	@Column(length = 200, nullable = false)
	private String logradouro;
	@Column(length = 30, nullable = false)
	private String bairro;
	@Column(length = 50, nullable = false)
	private String cidade;
	@Column(length = 2, nullable = false)
	private String estado;
	@Column(length = 5, precision = 0)
	private int numero;
	@Column(length = 8)
	private int cep;
	@Column(length = 10)
	private String complemento;
	@ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
	@JoinColumn(name = "ID_PESSOA")
	private PessoaTO pessoa;
	
	@PrePersist
	private void executaAntesDePersistir() {
		System.out.println("Persistindo...");
	}

	public EnderecoTO() {
		super();
		// TODO Auto-generated constructor stub
	}

	public EnderecoTO(int id_endereco, String logradouro, String bairro,
			String cidade, String estado, int numero, int cep,
			String complemento, PessoaTO pessoa) {
		super();
		this.id_endereco = id_endereco;
		this.logradouro = logradouro;
		this.bairro = bairro;
		this.cidade = cidade;
		this.estado = estado;
		this.numero = numero;
		this.cep = cep;
		this.complemento = complemento;
		this.pessoa = pessoa;
	}

	public int getId_endereco() {
		return id_endereco;
	}

	public void setId_endereco(int id_endereco) {
		this.id_endereco = id_endereco;
	}

	public String getLogradouro() {
		return logradouro;
	}

	public void setLogradouro(String logradouro) {
		this.logradouro = logradouro;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public int getCep() {
		return cep;
	}

	public void setCep(int cep) {
		this.cep = cep;
	}

	public String getComplemento() {
		return complemento;
	}

	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	public PessoaTO getPessoa() {
		return pessoa;
	}

	public void setPessoa(PessoaTO pessoa) {
		this.pessoa = pessoa;
	}

}
